package com.briup.pts.config.response;

import lombok.Getter;

/**
 * 统一响应状态码
 */
@Getter
public enum ResultCode {
    /**
     * 响应成功
     */
    SUCCESS(200, "success"),

    /*
    以下都为失败的结果
     */

    /*
     10000- 19999 都是用户传递参数相关失败相关的原因
     */
    ILLEGAL_PARAM(10000, "参数不合法"),
    PAGE_PARAM_INVALID(10001, "分页参数不可用"),


    /*
     20000- 29999 都是用户登录认证相关失败的原因
     */
    USER_NOT_EXIST(20000, "该用户不存在"),
    USER_IS_EXIST(20001, "该用户已存在"),
    PASSWORD_IS_INVALID(20002, "该密码有误"),
    USER_IS_UNABLE(20003, "用户账号状态锁定，无法登录"),
    TOKEN_IS_MISS(20004, "当前用户未登录"),
    TOKEN_IS_TIMEOUT(20005, "当前登录已过期，请重新登录"),
    TOKEN_IS_INVALID(20006, "当前登录状态有误，请重新登录");

    private final int code;
    private final String message;

    /**
     * 枚举类型的构造器，只能为private修饰
     *
     * @param code    状态码
     * @param message 响应消息
     */
    ResultCode(int code, String message) {
        this.code = code;
        this.message = message;
    }
}
